package org.fujay.langchain4jserver.application.command;

import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Builder;
import lombok.Data;
import org.fujay.langchain4jserver.domain.model.vo.ModelConfig;
import org.fujay.langchain4jserver.domain.model.vo.ModelId;
import org.fujay.langchain4jserver.domain.model.vo.ModelType;
import org.fujay.langchain4jserver.domain.model.vo.SupplierInfo;

/**
 * 更新模型命令
 */
@Data
@Builder
public class UpdateModelCommand {

    @NotNull(message = "模型ID不能为空")
    private ModelId modelId;

    @NotBlank(message = "模型名称不能为空")
    private String modelName;

    @NotNull(message = "模型类型不能为空")
    private ModelType modelType;

    @NotNull(message = "供应商信息不能为空")
    @Valid
    private SupplierInfo supplier;

    @NotNull(message = "模型配置不能为空")
    @Valid
    private ModelConfig config;
}
